package cn.appsys.service;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import cn.appsys.pojo.AppInfo;

public interface AppInfoService {

	/**
	 * 显示App信息管理维护
	 * 
	 * @param devUser
	 * @return
	 */
	public List<AppInfo> list(@Param("flatformName") String flatformName,
			@Param("categoryLevel1Name") String categoryLevel1Name,
			@Param("categoryLevel2Name") String categoryLevel2Name,
			@Param("categoryLevel3Name") String categoryLevel3Name, @Param("statusName") String statusName,
			@Param("softwareName") String softwareName, @Param("currentPageNo") int currentPageNo,
			@Param("pageSize") int pageSize);

	/**
	 * 通过条件查询-开发者表记录数
	 * 
	 * @return
	 */
	public int devUserCount(@Param("flatformName") String flatformName,
			@Param("categoryLevel1Name") String categoryLevel1Name,
			@Param("categoryLevel2Name") String categoryLevel2Name,
			@Param("categoryLevel3Name") String categoryLevel3Name, @Param("statusName") String statusName,
			@Param("softwareName") String softwareName);
	
	/**
	 * 查询APPKName
	 * 
	 * @param id
	 * @param APKName
	 * @return
	 */
	public AppInfo getAppInfo(@Param(value = "id") Integer id, @Param(value = "APKName") String APKName);
	
	/**
	 * 新增App基础信息
	 * 
	 * @param appInfo
	 * @return
	 */
	public int add(AppInfo appInfo);

	/**
	 * 修改App基础信息
	 * 
	 * @param appInfo
	 * @return
	 */
	public int modify(AppInfo appInfo);

	/**
	 * 删除App基础信息
	 * 
	 * @param appInfo
	 * @return
	 */
	public int deleteById(@Param(value = "id") Integer id);
	
	/**
	 * App软件上下架
	 * 
	 * @param appInfo
	 * @return
	 */
	public int sale(@Param("status") Integer status,@Param("id") Integer id);
	
	/**
	 * 删除文件
	 */
	public int delfile(@Param("id") Integer id,@Param("flag") String flag);
	
	/**
	 * 根据id获取app详细信息
	 * @param id
	 * @return
	 * @throws Exception
	 */
	public AppInfo getAppInfo(@Param(value="id")Integer id)throws Exception;
	
	/**
	 * 根据id更新app的satus
	 * @param status
	 * @param id
	 * @return
	 * @throws Exception
	 */
	public boolean updateSatus(@Param(value="status")Integer status,@Param(value="id")Integer id);
	
	/**
	 * 根据appId，更新最新versionId
	 * @param versionId
	 * @param appId
	 * @return
	 * @throws Exception
	 */
	public boolean updateVersionId(@Param(value="versionId")Integer versionId,@Param(value="id")Integer appId);
}
